package br.com.pesca.dao;

import br.com.pesca.entity.Usuario;
import java.util.List;
import javax.persistence.NoResultException;
import javax.persistence.Query;

public class UsuarioDAO extends BaseDAO<Usuario> {

    private static final long serialVersionUID = 1L;

    public Usuario buscarUsuario(String usuario) {
        Query query = getEntityManager()
                .createQuery(
                        "SELECT usuario FROM " + Usuario.class.getName()
                        + " AS usuario WHERE usuario.usuario = :usuario"
                );
        query.setParameter("usuario", usuario);
        try {
            return (Usuario) query.getSingleResult();
        } catch (NoResultException nre) {
            return null;
        }
    }

    public List<Usuario> buscarUsuarios(Usuario.NivelDeAcesso nivelDeAcesso) {
        Query query = getEntityManager()
                .createQuery(
                        "SELECT usuario from " + Usuario.class.getName()
                        + " AS usuario WHERE usuario.nivelDeAcesso = :nivelDeAcesso");
        query.setParameter("nivelDeAcesso", nivelDeAcesso);
        return query.getResultList();
    }
}
